(0) Obligation:

JBC Problem based on JBC Program:
No human-readable program information known.

Manifest-Version: 1.0 Created-By: 1.6.0_20 (Sun Microsystems Inc.) Main-Class: NestedLoop

(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
Graph of 313 nodes with 3 SCCs.

(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph to ITRS rules

(4) Complex Obligation (AND)

(5) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load876(i103, i76) → Cond_Load876(i103 >= 0 && i103 < i76 - 1 && i103 + 1 > 0, i103, i76)
Cond_Load876(TRUE, i103, i76) → Load876(i103 + 1, i76)
The set Q consists of the following terms:
Load876(x0, x1)
Cond_Load876(TRUE, x0, x1)

(6) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(7) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
Load876(i103, i76) → Cond_Load876(i103 >= 0 && i103 < i76 - 1 && i103 + 1 > 0, i103, i76)
Cond_Load876(TRUE, i103, i76) → Load876(i103 + 1, i76)

The integer pair graph contains the following rules and edges:
(0): LOAD876(i103[0], i76[0]) → COND_LOAD876(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0, i103[0], i76[0])
(1): COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(i103[1] + 1, i76[1])

(0) -> (1), if ((i76[0]* i76[1])∧(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0* TRUE)∧(i103[0]* i103[1]))


(1) -> (0), if ((i103[1] + 1* i103[0])∧(i76[1]* i76[0]))



The set Q consists of the following terms:
Load876(x0, x1)
Cond_Load876(TRUE, x0, x1)

(8) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(9) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD876(i103[0], i76[0]) → COND_LOAD876(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0, i103[0], i76[0])
(1): COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(i103[1] + 1, i76[1])

(0) -> (1), if ((i76[0]* i76[1])∧(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0* TRUE)∧(i103[0]* i103[1]))


(1) -> (0), if ((i103[1] + 1* i103[0])∧(i76[1]* i76[0]))



The set Q consists of the following terms:
Load876(x0, x1)
Cond_Load876(TRUE, x0, x1)

(10) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD876(i103, i76) → COND_LOAD876(&&(&&(>=(i103, 0), <(i103, -(i76, 1))), >(+(i103, 1), 0)), i103, i76) the following chains were created:
  • We consider the chain LOAD876(i103[0], i76[0]) → COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0]), COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(+(i103[1], 1), i76[1]) which results in the following constraint:

    (1)    (i76[0]=i76[1]&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0))=TRUEi103[0]=i103[1]LOAD876(i103[0], i76[0])≥NonInfC∧LOAD876(i103[0], i76[0])≥COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])∧(UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥))



    We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (>(+(i103[0], 1), 0)=TRUE>=(i103[0], 0)=TRUE<(i103[0], -(i76[0], 1))=TRUELOAD876(i103[0], i76[0])≥NonInfC∧LOAD876(i103[0], i76[0])≥COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])∧(UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] + [-2] + [-1]i103[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] + [(-1)bni_11]i103[0] ≥ 0∧[(-1)bso_12] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] + [-2] + [-1]i103[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] + [(-1)bni_11]i103[0] ≥ 0∧[(-1)bso_12] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] + [-2] + [-1]i103[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] + [(-1)bni_11]i103[0] ≥ 0∧[(-1)bso_12] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] ≥ 0∧[(-1)bso_12] ≥ 0)







For Pair COND_LOAD876(TRUE, i103, i76) → LOAD876(+(i103, 1), i76) the following chains were created:
  • We consider the chain COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(+(i103[1], 1), i76[1]) which results in the following constraint:

    (7)    (COND_LOAD876(TRUE, i103[1], i76[1])≥NonInfC∧COND_LOAD876(TRUE, i103[1], i76[1])≥LOAD876(+(i103[1], 1), i76[1])∧(UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧[1 + (-1)bso_14] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧[1 + (-1)bso_14] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧[1 + (-1)bso_14] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_14] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD876(i103, i76) → COND_LOAD876(&&(&&(>=(i103, 0), <(i103, -(i76, 1))), >(+(i103, 1), 0)), i103, i76)
    • (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] ≥ 0∧[(-1)bso_12] ≥ 0)

  • COND_LOAD876(TRUE, i103, i76) → LOAD876(+(i103, 1), i76)
    • ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_14] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD876(x1, x2)) = [-1] + x2 + [-1]x1   
POL(COND_LOAD876(x1, x2, x3)) = [-1] + x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   
POL(>(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   

The following pairs are in P>:

COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(+(i103[1], 1), i76[1])

The following pairs are in Pbound:

LOAD876(i103[0], i76[0]) → COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])

The following pairs are in P:

LOAD876(i103[0], i76[0]) → COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])

There are no usable rules.

(11) Complex Obligation (AND)

(12) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD876(i103[0], i76[0]) → COND_LOAD876(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0, i103[0], i76[0])


The set Q consists of the following terms:
Load876(x0, x1)
Cond_Load876(TRUE, x0, x1)

(13) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(14) TRUE

(15) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(i103[1] + 1, i76[1])


The set Q consists of the following terms:
Load876(x0, x1)
Cond_Load876(TRUE, x0, x1)

(16) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(17) TRUE

(18) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load775ARR1(i105 >= i112 && i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i94 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Load560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load560ARR2(i105 >= i112 && i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i75 < i76 - 1 && i75 + 1 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i75 + 1 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load775ARR3(i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i105 < i112, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load560ARR4(i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i105 < i112 && i75 < i76 - 1, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i75 + 1, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load775(i94 > 0 && i76 >= 0 && i94 >= i76 && i75 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load560(i75 + 1 > 0 && i76 >= 0 && i75 + 1 >= i76 && i75 < i76 - 1 && i75 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(19) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(20) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load775ARR1(i105 >= i112 && i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i94 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Load560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load560ARR2(i105 >= i112 && i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i75 < i76 - 1 && i75 + 1 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i75 + 1 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load775ARR3(i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i105 < i112, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load560ARR4(i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i105 < i112 && i75 < i76 - 1, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i75 + 1, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load775(i94 > 0 && i76 >= 0 && i94 >= i76 && i75 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load560(i75 + 1 > 0 && i76 >= 0 && i75 + 1 >= i76 && i75 < i76 - 1 && i75 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(15): LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0, i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(0) -> (1), if ((java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[7], a52data[7]))))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[0]* i75[13]))


(1) -> (2), if ((java.lang.Object(ARRAY(i76[1], a52data[1])) →* java.lang.Object(ARRAY(i76[2], a52data[2])))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧(java.lang.Object(ARRAY(i76[2], a52data[2])) →* java.lang.Object(ARRAY(i76[3], a52data[3])))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧(java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i76[3]* i76[1]))


(3) -> (7), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(3) -> (13), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(4) -> (5), if ((java.lang.Object(ARRAY(i76[4], a52data[4])) →* java.lang.Object(ARRAY(i76[5], a52data[5])))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧(java.lang.Object(ARRAY(i76[5], a52data[5])) →* java.lang.Object(ARRAY(i76[6], a52data[6]))))


(6) -> (1), if ((i76[6]* i76[1])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(6) -> (7), if ((i75[6]* i75[7])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(6) -> (13), if ((java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))


(7) -> (8), if ((i112[7]* i112[8])∧(java.lang.Object(ARRAY(i76[7], a52data[7])) →* java.lang.Object(ARRAY(i76[8], a52data[8])))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧(java.lang.Object(ARRAY(i76[8], a52data[8])) →* java.lang.Object(ARRAY(i76[9], a52data[9])))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(9) -> (0), if ((java.lang.Object(ARRAY(i76[9], a52dataNew[9])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(10) -> (11), if ((java.lang.Object(ARRAY(i76[10], a52data[10])) →* java.lang.Object(ARRAY(i76[11], a52data[11])))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧(java.lang.Object(ARRAY(i76[11], a52data[11])) →* java.lang.Object(ARRAY(i76[12], a52data[12])))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(12) -> (0), if ((java.lang.Object(ARRAY(i76[12], a52dataNew[12])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(13) -> (14), if ((java.lang.Object(ARRAY(i76[13], a52data[13])) →* java.lang.Object(ARRAY(i76[14], a52data[14])))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[4], a52data[4])))∧(i76[14]* i76[4]))


(14) -> (10), if ((i75[14] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[10], a52data[10])))∧(i76[14]* i76[10]))


(14) -> (15), if ((i75[14] + 1* i75[15])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i76[14]* i76[15]))


(15) -> (16), if ((java.lang.Object(ARRAY(i76[15], a52data[15])) →* java.lang.Object(ARRAY(i76[16], a52data[16])))∧(i75[15]* i75[16])∧(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0* TRUE)∧(i76[15]* i76[16]))


(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[4], a52data[4]))))


(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[10], a52data[10]))))


(16) -> (15), if ((java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i75[16] + 1* i75[15])∧(i76[16]* i76[15]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(21) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(22) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(15): LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0, i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(0) -> (1), if ((java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[7], a52data[7]))))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[0]* i75[13]))


(1) -> (2), if ((java.lang.Object(ARRAY(i76[1], a52data[1])) →* java.lang.Object(ARRAY(i76[2], a52data[2])))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧(java.lang.Object(ARRAY(i76[2], a52data[2])) →* java.lang.Object(ARRAY(i76[3], a52data[3])))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧(java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i76[3]* i76[1]))


(3) -> (7), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(3) -> (13), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(4) -> (5), if ((java.lang.Object(ARRAY(i76[4], a52data[4])) →* java.lang.Object(ARRAY(i76[5], a52data[5])))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧(java.lang.Object(ARRAY(i76[5], a52data[5])) →* java.lang.Object(ARRAY(i76[6], a52data[6]))))


(6) -> (1), if ((i76[6]* i76[1])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(6) -> (7), if ((i75[6]* i75[7])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(6) -> (13), if ((java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))


(7) -> (8), if ((i112[7]* i112[8])∧(java.lang.Object(ARRAY(i76[7], a52data[7])) →* java.lang.Object(ARRAY(i76[8], a52data[8])))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧(java.lang.Object(ARRAY(i76[8], a52data[8])) →* java.lang.Object(ARRAY(i76[9], a52data[9])))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(9) -> (0), if ((java.lang.Object(ARRAY(i76[9], a52dataNew[9])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(10) -> (11), if ((java.lang.Object(ARRAY(i76[10], a52data[10])) →* java.lang.Object(ARRAY(i76[11], a52data[11])))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧(java.lang.Object(ARRAY(i76[11], a52data[11])) →* java.lang.Object(ARRAY(i76[12], a52data[12])))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(12) -> (0), if ((java.lang.Object(ARRAY(i76[12], a52dataNew[12])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(13) -> (14), if ((java.lang.Object(ARRAY(i76[13], a52data[13])) →* java.lang.Object(ARRAY(i76[14], a52data[14])))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[4], a52data[4])))∧(i76[14]* i76[4]))


(14) -> (10), if ((i75[14] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[10], a52data[10])))∧(i76[14]* i76[10]))


(14) -> (15), if ((i75[14] + 1* i75[15])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i76[14]* i76[15]))


(15) -> (16), if ((java.lang.Object(ARRAY(i76[15], a52data[15])) →* java.lang.Object(ARRAY(i76[16], a52data[16])))∧(i75[15]* i75[16])∧(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0* TRUE)∧(i76[15]* i76[16]))


(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[4], a52data[4]))))


(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[10], a52data[10]))))


(16) -> (15), if ((java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i75[16] + 1* i75[15])∧(i76[16]* i76[15]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(23) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(24) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(15): LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0, i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))


(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))


(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))


(14) -> (15), if ((i75[14] + 1* i75[15])∧((i76[14]* i76[15])∧(a52data[14]* a52data[15]))∧(i76[14]* i76[15]))


(15) -> (16), if (((i76[15]* i76[16])∧(a52data[15]* a52data[16]))∧(i75[15]* i75[16])∧(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0* TRUE)∧(i76[15]* i76[16]))


(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧((i76[16]* i76[4])∧(a52data[16]* a52data[4])))


(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧((i76[16]* i76[10])∧(a52data[16]* a52data[10])))


(16) -> (15), if (((i76[16]* i76[15])∧(a52data[16]* a52data[15]))∧(i75[16] + 1* i75[15])∧(i76[16]* i76[15]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(25) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

    (1)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_34] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_34] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_34] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_34] ≥ 0)







For Pair LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
  • We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

    (6)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (7)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_36] ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (8)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_36] ≥ 0)



    We simplified constraint (8) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (9)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_36] ≥ 0)



    We simplified constraint (9) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (10)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)







For Pair LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105, i112), >(i94, 0)), <(i94, i76)), >=(i75, 0)), <(i75, i76)), >(+(i94, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
  • We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (11)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (11) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (12)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (12) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (13)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (13) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (14)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (14) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (15)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (15) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (16)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (16) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (17)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (17) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (18)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (18) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (19)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (19) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (20)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)


    (21)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)







For Pair COND_LOAD775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (22)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))



    We simplified constraint (22) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_40] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_40] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_40] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_40] ≥ 0)







For Pair LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
  • We consider the chain LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4]) which results in the following constraint:

    (27)    (LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])))≥NonInfC∧LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])))≥LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])∧(UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥))



    We simplified constraint (27) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (28)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_42] ≥ 0)



    We simplified constraint (28) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (29)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_42] ≥ 0)



    We simplified constraint (29) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (30)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_42] ≥ 0)



    We simplified constraint (30) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (31)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_42] ≥ 0)







For Pair LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105, i112), >(+(i75, 1), 0)), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i75, -(i76, 1))), >(+(+(i75, 1), 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
  • We consider the chain LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]), COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

    (32)    (i76[5]=i76[6]&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0))=TRUEi105[5]=i105[6]i112[5]=i112[6]i75[5]=i75[6]a52data[5]=a52data[6]LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))



    We simplified constraint (32) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (33)    (>(+(+(i75[5], 1), 1), 0)=TRUE<(i75[5], -(i76[5], 1))=TRUE<(i75[5], i76[5])=TRUE>=(i75[5], 0)=TRUE<(+(i75[5], 1), i76[5])=TRUE>=(i105[5], i112[5])=TRUE>(+(i75[5], 1), 0)=TRUELOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))



    We simplified constraint (33) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (34)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧[(-1)bso_44] ≥ 0)



    We simplified constraint (34) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (35)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧[(-1)bso_44] ≥ 0)



    We simplified constraint (35) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (36)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧[(-1)bso_44] ≥ 0)



    We simplified constraint (36) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (37)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)



    We simplified constraint (37) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (38)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)



    We simplified constraint (38) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (39)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)



    We simplified constraint (39) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (40)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)


    (41)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)







For Pair COND_LOAD560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(+(i75, 1), 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

    (42)    (COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥NonInfC∧COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))∧(UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥))



    We simplified constraint (42) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (43)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[(-1)bso_46] ≥ 0)



    We simplified constraint (43) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (44)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[(-1)bso_46] ≥ 0)



    We simplified constraint (44) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (45)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[(-1)bso_46] ≥ 0)



    We simplified constraint (45) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (46)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)







For Pair LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
  • We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

    (47)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_48] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_48] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (50)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_48] ≥ 0)



    We simplified constraint (50) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (51)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_48] ≥ 0)







For Pair LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94, 0), <(i94, i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
  • We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (52)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (52) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (53)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (53) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (54)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (54) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (55)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (55) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (57)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (57) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (58)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (58) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (59)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (59) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (60)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)



    We simplified constraint (60) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (61)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)


    (62)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)







For Pair COND_LOAD775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew))) the following chains were created:
  • We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (63)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))



    We simplified constraint (63) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (64)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_52] ≥ 0)



    We simplified constraint (64) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (65)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_52] ≥ 0)



    We simplified constraint (65) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (66)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_52] ≥ 0)



    We simplified constraint (66) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (67)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)







For Pair LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
  • We consider the chain LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10]) which results in the following constraint:

    (68)    (LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥NonInfC∧LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])∧(UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥))



    We simplified constraint (68) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (69)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[(-1)bso_54] ≥ 0)



    We simplified constraint (69) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (70)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[(-1)bso_54] ≥ 0)



    We simplified constraint (70) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (71)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[(-1)bso_54] ≥ 0)



    We simplified constraint (71) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (72)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_54] ≥ 0)







For Pair LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75, 1), 0), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), <(i75, -(i76, 1))), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
  • We consider the chain LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]), COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

    (73)    (i112[11]=i112[12]i105[11]=i105[12]i76[11]=i76[12]i75[11]=i75[12]&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1)))=TRUEa52data[11]=a52data[12]i131[11]=i131[12]i152[11]=i152[12]LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))



    We simplified constraint (73) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (74)    (<(i75[11], -(i76[11], 1))=TRUE<(i105[11], i112[11])=TRUE<(i75[11], i76[11])=TRUE>=(i75[11], 0)=TRUE>(+(i75[11], 1), 0)=TRUE<(+(i75[11], 1), i76[11])=TRUELOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))



    We simplified constraint (74) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (75)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧[(-1)bso_56] ≥ 0)



    We simplified constraint (75) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (76)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧[(-1)bso_56] ≥ 0)



    We simplified constraint (76) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (77)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧[(-1)bso_56] ≥ 0)



    We simplified constraint (77) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (78)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)



    We simplified constraint (78) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (79)    (i76[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)



    We simplified constraint (79) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (80)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)



    We simplified constraint (80) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (81)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)


    (82)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)







For Pair COND_LOAD560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, +(i75, 1), i76, java.lang.Object(ARRAY(i76, a52dataNew))) the following chains were created:
  • We consider the chain COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

    (83)    (COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥NonInfC∧COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))∧(UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥))



    We simplified constraint (83) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (84)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_58] ≥ 0)



    We simplified constraint (84) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (85)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_58] ≥ 0)



    We simplified constraint (85) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (86)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_58] ≥ 0)



    We simplified constraint (86) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (87)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)







For Pair LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD775(&&(&&(&&(>(i94, 0), >=(i76, 0)), >=(i94, i76)), >(+(i75, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))), COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

    (88)    (i76[13]=i76[14]a52data[13]=a52data[14]i75[13]=i75[14]&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0))=TRUEi94[13]=i94[14]LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))



    We simplified constraint (88) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (89)    (>(+(i75[13], 1), 0)=TRUE>=(i94[13], i76[13])=TRUE>(i94[13], 0)=TRUE>=(i76[13], 0)=TRUELOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))



    We simplified constraint (89) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (90)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧[(-1)bso_60] ≥ 0)



    We simplified constraint (90) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (91)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧[(-1)bso_60] ≥ 0)



    We simplified constraint (91) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (92)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧[(-1)bso_60] ≥ 0)



    We simplified constraint (92) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (93)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)



    We simplified constraint (93) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (94)    (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)







For Pair COND_LOAD775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

    (95)    (COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))≥NonInfC∧COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))≥LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))∧(UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥))



    We simplified constraint (95) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (96)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[1 + (-1)bso_62] ≥ 0)



    We simplified constraint (96) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (97)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[1 + (-1)bso_62] ≥ 0)



    We simplified constraint (97) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (98)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[1 + (-1)bso_62] ≥ 0)



    We simplified constraint (98) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (99)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_62] ≥ 0)







For Pair LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75, 1), 0), >=(i76, 0)), >=(+(i75, 1), i76)), <(i75, -(i76, 1))), >(+(i75, 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))), COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) which results in the following constraint:

    (100)    (i76[15]=i76[16]a52data[15]=a52data[16]i75[15]=i75[16]&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0))=TRUELOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥NonInfC∧LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))∧(UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥))



    We simplified constraint (100) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (101)    (>(+(i75[15], 1), 0)=TRUE<(i75[15], -(i76[15], 1))=TRUE>=(+(i75[15], 1), i76[15])=TRUE>=(i76[15], 0)=TRUELOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥NonInfC∧LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))∧(UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥))



    We simplified constraint (101) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (102)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (102) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (103)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (103) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (104)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (104) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (105)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧0 = 0∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We solved constraint (105) using rule (IDP_SMT_SPLIT).




For Pair COND_LOAD560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
  • We consider the chain COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) which results in the following constraint:

    (106)    (COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))≥NonInfC∧COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))≥LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))∧(UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥))



    We simplified constraint (106) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (107)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧[1 + (-1)bso_66] ≥ 0)



    We simplified constraint (107) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (108)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧[1 + (-1)bso_66] ≥ 0)



    We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (109)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧[1 + (-1)bso_66] ≥ 0)



    We simplified constraint (109) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (110)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_66] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
    • ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_34] ≥ 0)

  • LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
    • ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)

  • LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105, i112), >(i94, 0)), <(i94, i76)), >=(i75, 0)), <(i75, i76)), >(+(i94, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

  • COND_LOAD775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
    • ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_40] ≥ 0)

  • LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
    • ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_42] ≥ 0)

  • LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105, i112), >(+(i75, 1), 0)), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i75, -(i76, 1))), >(+(+(i75, 1), 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
    • (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)
    • (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

  • COND_LOAD560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(+(i75, 1), 1), i76, java.lang.Object(ARRAY(i76, a52data)))
    • ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

  • LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
    • ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_48] ≥ 0)

  • LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94, 0), <(i94, i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

  • COND_LOAD775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
    • ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)

  • LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
    • ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_54] ≥ 0)

  • LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75, 1), 0), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), <(i75, -(i76, 1))), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
    • (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)
    • (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

  • COND_LOAD560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, +(i75, 1), i76, java.lang.Object(ARRAY(i76, a52dataNew)))
    • ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)

  • LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD775(&&(&&(&&(>(i94, 0), >=(i76, 0)), >=(i94, i76)), >(+(i75, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)))
    • (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

  • COND_LOAD775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
    • ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_62] ≥ 0)

  • LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75, 1), 0), >=(i76, 0)), >=(+(i75, 1), i76)), <(i75, -(i76, 1))), >(+(i75, 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data)))

  • COND_LOAD560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
    • ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_66] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(INC1031(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [-1]x1   
POL(LOAD775(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(LOAD775ARR1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1   
POL(COND_LOAD775ARR1(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x5 + [-1]x4 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(LOAD560(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(LOAD560ARR2(x1, x2, x3, x4, x5)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(COND_LOAD560ARR2(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1   
POL(COND_LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = [-1] + [-1]x5 + [-1]x4 + [-1]x2   
POL(LOAD560ARR4(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(COND_LOAD560ARR4(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(COND_LOAD775(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [-1]x4 + [-1]x2   
POL(COND_LOAD560(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   

The following pairs are in P>:

COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

The following pairs are in Pbound:

LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))

The following pairs are in P:

INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))

There are no usable rules.

(26) Complex Obligation (AND)

(27) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))


(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(28) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 7 less nodes.

(29) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(30) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) the following chains were created:
  • We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (1)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_18] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_18] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_18] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)







For Pair LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) the following chains were created:
  • We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (6)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (6) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (14)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (14) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (15)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)


    (16)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)







For Pair LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) the following chains were created:
  • We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

    (17)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))



    We simplified constraint (17) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (18)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_22] ≥ 0)



    We simplified constraint (18) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (19)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_22] ≥ 0)



    We simplified constraint (19) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (20)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_22] ≥ 0)



    We simplified constraint (20) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (21)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_22] ≥ 0)







For Pair COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) the following chains were created:
  • We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (22)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))



    We simplified constraint (22) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_24] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_24] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_24] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_24] ≥ 0)







For Pair LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) the following chains were created:
  • We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (27)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (27) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (28)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (28) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (29)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (30)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (30) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (31)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (31) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (32) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (33)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (33) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (34)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (34) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (35)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (35) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (36)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)


    (37)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)







For Pair LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) the following chains were created:
  • We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

    (38)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))



    We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_28] ≥ 0)



    We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_28] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (41)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_28] ≥ 0)



    We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (42)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)







For Pair INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) the following chains were created:
  • We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

    (43)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))



    We simplified constraint (43) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (44)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[1 + (-1)bso_30] ≥ 0)



    We simplified constraint (44) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (45)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[1 + (-1)bso_30] ≥ 0)



    We simplified constraint (45) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (46)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[1 + (-1)bso_30] ≥ 0)



    We simplified constraint (46) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (47)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_30] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
    • ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)

  • LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

  • LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
    • ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_22] ≥ 0)

  • COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
    • ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_24] ≥ 0)

  • LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

  • LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
    • ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)

  • INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
    • ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_30] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = [-1] + [-1]x3 + x4   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(INC1031(x1, x2, x3, x4)) = [-1] + [-1]x2 + x3   
POL(LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x2 + x3   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = 0   
POL(0) = 0   
POL(<(x1, x2)) = 0   
POL(>=(x1, x2)) = [-1]   
POL(LOAD775(x1, x2, x3, x4)) = [-1] + [-1]x2 + x3   
POL(COND_LOAD775ARR1(x1, x2, x3, x4, x5, x6, x7)) = [-1] + x4 + [-1]x3   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(LOAD775ARR1(x1, x2, x3, x4, x5, x6)) = [-1] + x3 + [-1]x2   

The following pairs are in P>:

COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

The following pairs are in Pbound:

LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])

The following pairs are in P:

COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])

There are no usable rules.

(31) Complex Obligation (AND)

(32) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(33) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes.

(34) TRUE

(35) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(36) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes.

(37) TRUE

(38) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))


(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧((i76[16]* i76[4])∧(a52data[16]* a52data[4])))


(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))


(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧((i76[16]* i76[10])∧(a52data[16]* a52data[10])))


(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))


(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))


(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(39) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(40) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))


(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))


(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))


(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))


(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(41) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) the following chains were created:
  • We consider the chain COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

    (1)    (COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥NonInfC∧COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))∧(UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_21] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_21] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_21] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)







For Pair LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) the following chains were created:
  • We consider the chain LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]), COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

    (6)    (i112[11]=i112[12]i105[11]=i105[12]i76[11]=i76[12]i75[11]=i75[12]&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1)))=TRUEa52data[11]=a52data[12]i131[11]=i131[12]i152[11]=i152[12]LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))



    We simplified constraint (6) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (<(i75[11], -(i76[11], 1))=TRUE<(i105[11], i112[11])=TRUE<(i75[11], i76[11])=TRUE>=(i75[11], 0)=TRUE>(+(i75[11], 1), 0)=TRUE<(+(i75[11], 1), i76[11])=TRUELOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    (i76[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (14)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)


    (15)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)







For Pair LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10]) the following chains were created:
  • We consider the chain LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10]) which results in the following constraint:

    (16)    (LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥NonInfC∧LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])∧(UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥))



    We simplified constraint (16) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (17)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[1 + (-1)bso_25] ≥ 0)



    We simplified constraint (17) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (18)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[1 + (-1)bso_25] ≥ 0)



    We simplified constraint (18) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (19)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[1 + (-1)bso_25] ≥ 0)



    We simplified constraint (19) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (20)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)







For Pair COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) the following chains were created:
  • We consider the chain COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

    (21)    (COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥NonInfC∧COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))∧(UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥))



    We simplified constraint (21) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (22)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[1 + (-1)bso_27] ≥ 0)



    We simplified constraint (22) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[1 + (-1)bso_27] ≥ 0)



    We simplified constraint (23) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[1 + (-1)bso_27] ≥ 0)



    We simplified constraint (24) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (25)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)







For Pair LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) the following chains were created:
  • We consider the chain LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]), COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

    (26)    (i76[5]=i76[6]&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0))=TRUEi105[5]=i105[6]i112[5]=i112[6]i75[5]=i75[6]a52data[5]=a52data[6]LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))



    We simplified constraint (26) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (27)    (>(+(+(i75[5], 1), 1), 0)=TRUE<(i75[5], -(i76[5], 1))=TRUE<(i75[5], i76[5])=TRUE>=(i75[5], 0)=TRUE<(+(i75[5], 1), i76[5])=TRUE>=(i105[5], i112[5])=TRUE>(+(i75[5], 1), 0)=TRUELOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))



    We simplified constraint (27) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (28)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧[(-1)bso_29] ≥ 0)



    We simplified constraint (28) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (29)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧[(-1)bso_29] ≥ 0)



    We simplified constraint (29) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (30)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧[(-1)bso_29] ≥ 0)



    We simplified constraint (30) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (31)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)



    We simplified constraint (31) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (32)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)



    We simplified constraint (32) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (33)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)



    We simplified constraint (33) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (34)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)


    (35)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)







For Pair LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4]) the following chains were created:
  • We consider the chain LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4]) which results in the following constraint:

    (36)    (LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])))≥NonInfC∧LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])))≥LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])∧(UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥))



    We simplified constraint (36) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (37)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_31] ≥ 0)



    We simplified constraint (37) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (38)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_31] ≥ 0)



    We simplified constraint (38) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (39)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_31] ≥ 0)



    We simplified constraint (39) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (40)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)







For Pair COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) the following chains were created:
  • We consider the chain COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

    (41)    (COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))≥NonInfC∧COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))≥LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))∧(UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥))



    We simplified constraint (41) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (42)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[(-1)bso_33] ≥ 0)



    We simplified constraint (42) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (43)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[(-1)bso_33] ≥ 0)



    We simplified constraint (43) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[(-1)bso_33] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (45)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)







For Pair LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) the following chains were created:
  • We consider the chain LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))), COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

    (46)    (i76[13]=i76[14]a52data[13]=a52data[14]i75[13]=i75[14]&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0))=TRUEi94[13]=i94[14]LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))



    We simplified constraint (46) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (47)    (>(+(i75[13], 1), 0)=TRUE>=(i94[13], i76[13])=TRUE>(i94[13], 0)=TRUE>=(i76[13], 0)=TRUELOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧[(-1)bso_35] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧[(-1)bso_35] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (50)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧[(-1)bso_35] ≥ 0)



    We simplified constraint (50) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (51)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)



    We simplified constraint (51) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (52)    (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)







For Pair COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) the following chains were created:
  • We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (53)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))



    We simplified constraint (53) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (54)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_37] ≥ 0)



    We simplified constraint (54) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (55)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_37] ≥ 0)



    We simplified constraint (55) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_37] ≥ 0)



    We simplified constraint (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (57)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_37] ≥ 0)







For Pair LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) the following chains were created:
  • We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (58)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (58) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (59)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (59) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (60)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (60) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (61)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (61) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (62)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (62) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (63)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (63) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (64)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (64) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (65)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (65) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (66)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



    We simplified constraint (66) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (67)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)


    (68)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)







For Pair LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) the following chains were created:
  • We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

    (69)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))



    We simplified constraint (69) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (70)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_41] ≥ 0)



    We simplified constraint (70) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (71)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_41] ≥ 0)



    We simplified constraint (71) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (72)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_41] ≥ 0)



    We simplified constraint (72) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (73)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)







For Pair COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) the following chains were created:
  • We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (74)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))



    We simplified constraint (74) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (75)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_43] ≥ 0)



    We simplified constraint (75) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (76)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_43] ≥ 0)



    We simplified constraint (76) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (77)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_43] ≥ 0)



    We simplified constraint (77) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (78)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)







For Pair LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) the following chains were created:
  • We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (79)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (79) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (80)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (80) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (81)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (81) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (82)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (82) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (83)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (83) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (84)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (84) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (85)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (85) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (86)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (86) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (87)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)



    We simplified constraint (87) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (88)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)


    (89)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)







For Pair LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) the following chains were created:
  • We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

    (90)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))



    We simplified constraint (90) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (91)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (91) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (92)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (92) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (93)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (93) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (94)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_47] ≥ 0)







For Pair INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) the following chains were created:
  • We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

    (95)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))



    We simplified constraint (95) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (96)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_49] ≥ 0)



    We simplified constraint (96) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (97)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_49] ≥ 0)



    We simplified constraint (97) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (98)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_49] ≥ 0)



    We simplified constraint (98) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (99)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
    • ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)

  • LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
    • (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)
    • (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

  • LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
    • ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)

  • COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
    • ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

  • LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
    • (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)
    • (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)

  • LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
    • ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)

  • COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
    • ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)

  • LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
    • (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)

  • COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
    • ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_37] ≥ 0)

  • LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

  • LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
    • ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)

  • COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
    • ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)

  • LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

  • LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
    • ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_47] ≥ 0)

  • INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
    • ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_LOAD560ARR4(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [2]x3 + [-1]x2 + [-1]x4   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [2] + [-1]x1   
POL(INC1031(x1, x2, x3, x4)) = [-1] + [-1]x4 + [2]x3 + [-1]x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(LOAD560ARR4(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [2]x2 + [-1]x1 + [-1]x3   
POL(&&(x1, x2)) = 0   
POL(>(x1, x2)) = 0   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(LOAD560(x1, x2, x3)) = [2]x2 + [-1]x1 + [-1]x3   
POL(COND_LOAD560ARR2(x1, x2, x3, x4, x5, x6)) = [2]x3 + [-1]x2 + [-1]x4   
POL(LOAD775(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x1 + [-1]x4   
POL(LOAD560ARR2(x1, x2, x3, x4, x5)) = [2]x2 + [-1]x1 + [-1]x3   
POL(COND_LOAD775(x1, x2, x3, x4, x5)) = [-1] + [2]x4 + [-1]x2 + [-1]x5   
POL(COND_LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = [-1] + [2]x4 + [-1]x2 + [-1]x5   
POL(LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [2]x3 + [-1]x1 + [-1]x4   
POL(COND_LOAD775ARR1(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [2]x4 + [-1]x2 + [-1]x5   
POL(LOAD775ARR1(x1, x2, x3, x4, x5, x6)) = [-1] + [2]x3 + [-1]x1 + [-1]x4   

The following pairs are in P>:

LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))

The following pairs are in Pbound:

LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])

The following pairs are in P:

COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

There are no usable rules.

(42) Complex Obligation (AND)

(43) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))


(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))


(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))


(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(44) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes.

(45) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(46) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) the following chains were created:
  • We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (1)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_15] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_15] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_15] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_15] ≥ 0)







For Pair LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) the following chains were created:
  • We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

    (6)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (6) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-2)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [(2)bni_16]i76[8] + [(-1)bni_16]i75[8] ≥ 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-2)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [(2)bni_16]i76[8] + [(-1)bni_16]i75[8] ≥ 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-2)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [(2)bni_16]i76[8] + [(-1)bni_16]i75[8] ≥ 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-2)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [(2)bni_16]i76[8] + [(-1)bni_16]i75[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-2)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [(2)bni_16]i76[8] + [(-1)bni_16]i75[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [bni_16]i75[8] + [(2)bni_16]i76[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (14)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [bni_16]i75[8] + [(2)bni_16]i76[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)



    We simplified constraint (14) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (15)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [bni_16]i75[8] + [(2)bni_16]i76[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)


    (16)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [bni_16]i75[8] + [(2)bni_16]i76[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)







For Pair LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) the following chains were created:
  • We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

    (17)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))



    We simplified constraint (17) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (18)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (18) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (19)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (19) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (20)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (20) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (21)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_19] ≥ 0)







For Pair COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) the following chains were created:
  • We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (22)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))



    We simplified constraint (22) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_21] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_21] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_21] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_21] ≥ 0)







For Pair LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) the following chains were created:
  • We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

    (27)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (27) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (28)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))



    We simplified constraint (28) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (29)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i76[2] + [(-1)bni_22]i75[2] + [(-1)bni_22]i94[2] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (30)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i76[2] + [(-1)bni_22]i75[2] + [(-1)bni_22]i94[2] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (30) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (31)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i76[2] + [(-1)bni_22]i75[2] + [(-1)bni_22]i94[2] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (31) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i76[2] + [(-1)bni_22]i75[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (32) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (33)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-2)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i76[2] + [(-1)bni_22]i75[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (33) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (34)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i75[2] + [(2)bni_22]i76[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (34) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (35)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i75[2] + [(2)bni_22]i76[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (35) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

    (36)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i75[2] + [(2)bni_22]i76[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)


    (37)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i75[2] + [(2)bni_22]i76[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)







For Pair LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) the following chains were created:
  • We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

    (38)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))



    We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_25] ≥ 0)



    We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_25] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (41)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_25] ≥ 0)



    We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (42)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_25] ≥ 0)







For Pair INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) the following chains were created:
  • We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

    (43)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))



    We simplified constraint (43) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (44)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_27] ≥ 0)



    We simplified constraint (44) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (45)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_27] ≥ 0)



    We simplified constraint (45) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (46)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_27] ≥ 0)



    We simplified constraint (46) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (47)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_27] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
    • ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_15] ≥ 0)

  • LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [bni_16]i75[8] + [(2)bni_16]i76[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)
    • (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_16 + (-1)Bound*bni_16] + [(-1)bni_16]i94[8] + [bni_16]i75[8] + [(2)bni_16]i76[8] ≥ 0∧0 = 0∧[(-1)bso_17] ≥ 0)

  • LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
    • ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_19] ≥ 0)

  • COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
    • ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_21] ≥ 0)

  • LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i75[2] + [(2)bni_22]i76[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)
    • ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i75[2] + [(2)bni_22]i76[2] + [(-1)bni_22]i94[2] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

  • LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
    • ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_25] ≥ 0)

  • INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
    • ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_27] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = [-1] + [-1]x3 + x4 + [-1]x2 + [-1]x5   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [1] + [-1]x1   
POL(INC1031(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x2 + x3 + [-1]x1   
POL(LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x2 + x3 + [-1]x1 + [-1]x4   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = 0   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(LOAD775(x1, x2, x3, x4)) = [-1]x2 + x3 + [-1]x1 + [-1]x4   
POL(COND_LOAD775ARR1(x1, x2, x3, x4, x5, x6, x7)) = x4 + [-1]x2 + [-1]x3 + [-1]x5   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(LOAD775ARR1(x1, x2, x3, x4, x5, x6)) = x3 + [-1]x1 + [-1]x2 + [-1]x4   

The following pairs are in P>:

LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))

The following pairs are in Pbound:

LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])

The following pairs are in P:

COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

There are no usable rules.

(47) Complex Obligation (AND)

(48) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))


(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(49) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes.

(50) TRUE

(51) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(52) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes.

(53) TRUE

(54) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))


(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))


(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))


(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))


(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))


(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))


(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))


(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))


(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))


(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))


(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))


(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))


(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))


(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))



The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Cond_Load560(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)))

(55) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 11 less nodes.

(56) TRUE

(57) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load270(i35, i34, java.lang.Object(ARRAY(i34, a21data))) → Load270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22)))
Load270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → Cond_Load270ARR5(i35 >= 0 && i35 < i34 && i35 < i34 - 1 && i35 + 1 > 0, i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22)))
Cond_Load270ARR5(TRUE, i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → Load270(i35 + 1, i34, java.lang.Object(ARRAY(i34, a21dataNew)))
The set Q consists of the following terms:
Load270(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load270ARR5(x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))
Cond_Load270ARR5(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))

(58) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(59) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
Load270(i35, i34, java.lang.Object(ARRAY(i34, a21data))) → Load270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22)))
Load270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → Cond_Load270ARR5(i35 >= 0 && i35 < i34 && i35 < i34 - 1 && i35 + 1 > 0, i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22)))
Cond_Load270ARR5(TRUE, i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → Load270(i35 + 1, i34, java.lang.Object(ARRAY(i34, a21dataNew)))

The integer pair graph contains the following rules and edges:
(0): LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))
(1): LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0, i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))
(2): COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(i35[2] + 1, i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))

(0) -> (1), if ((i34[0]* i34[1])∧(java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])) →* java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))∧(i35[0]* i35[1])∧(java.lang.Object(ARRAY(i34[0], a21data[0])) →* java.lang.Object(ARRAY(i34[1], a21data[1]))))


(1) -> (2), if ((i35[1]* i35[2])∧(java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])) →* java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2])))∧(i34[1]* i34[2])∧(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i34[1], a21data[1])) →* java.lang.Object(ARRAY(i34[2], a21data[2]))))


(2) -> (0), if ((java.lang.Object(ARRAY(i34[2], a21dataNew[2])) →* java.lang.Object(ARRAY(i34[0], a21data[0])))∧(i35[2] + 1* i35[0])∧(i34[2]* i34[0]))



The set Q consists of the following terms:
Load270(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load270ARR5(x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))
Cond_Load270ARR5(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))

(60) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(61) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))
(1): LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0, i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))
(2): COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(i35[2] + 1, i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))

(0) -> (1), if ((i34[0]* i34[1])∧(java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])) →* java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))∧(i35[0]* i35[1])∧(java.lang.Object(ARRAY(i34[0], a21data[0])) →* java.lang.Object(ARRAY(i34[1], a21data[1]))))


(1) -> (2), if ((i35[1]* i35[2])∧(java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])) →* java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2])))∧(i34[1]* i34[2])∧(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i34[1], a21data[1])) →* java.lang.Object(ARRAY(i34[2], a21data[2]))))


(2) -> (0), if ((java.lang.Object(ARRAY(i34[2], a21dataNew[2])) →* java.lang.Object(ARRAY(i34[0], a21data[0])))∧(i35[2] + 1* i35[0])∧(i34[2]* i34[0]))



The set Q consists of the following terms:
Load270(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load270ARR5(x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))
Cond_Load270ARR5(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))

(62) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(63) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))
(1): LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0, i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))
(2): COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(i35[2] + 1, i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))

(0) -> (1), if ((i34[0]* i34[1])∧((i52[0]* i52[1])∧(i51[0]* i51[1])∧(i53[0]* i53[1])∧(a22[0]* a22[1]))∧(i35[0]* i35[1])∧((i34[0]* i34[1])∧(a21data[0]* a21data[1])))


(1) -> (2), if ((i35[1]* i35[2])∧((i52[1]* i52[2])∧(i51[1]* i51[2])∧(i53[1]* i53[2])∧(a22[1]* a22[2]))∧(i34[1]* i34[2])∧(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0* TRUE)∧((i34[1]* i34[2])∧(a21data[1]* a21data[2])))


(2) -> (0), if (((i34[2]* i34[0])∧(a21dataNew[2]* a21data[0]))∧(i35[2] + 1* i35[0])∧(i34[2]* i34[0]))



The set Q consists of the following terms:
Load270(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load270ARR5(x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))
Cond_Load270ARR5(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))

(64) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD270(i35, i34, java.lang.Object(ARRAY(i34, a21data))) → LOAD270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) the following chains were created:
  • We consider the chain LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0]))) which results in the following constraint:

    (1)    (LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])))≥NonInfC∧LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])))≥LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))∧(UIncreasing(LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))), ≥)∧[(-1)bso_18] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))), ≥)∧[(-1)bso_18] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))), ≥)∧[(-1)bso_18] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)







For Pair LOAD270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → COND_LOAD270ARR5(&&(&&(&&(>=(i35, 0), <(i35, i34)), <(i35, -(i34, 1))), >(+(i35, 1), 0)), i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) the following chains were created:
  • We consider the chain LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))), COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2]))) which results in the following constraint:

    (6)    (i35[1]=i35[2]i52[1]=i52[2]i51[1]=i51[2]i53[1]=i53[2]a22[1]=a22[2]i34[1]=i34[2]&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0))=TRUEa21data[1]=a21data[2]LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))≥NonInfC∧LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))≥COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))∧(UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥))



    We simplified constraint (6) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (>(+(i35[1], 1), 0)=TRUE<(i35[1], -(i34[1], 1))=TRUE>=(i35[1], 0)=TRUE<(i35[1], i34[1])=TRUELOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))≥NonInfC∧LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))≥COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))∧(UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i35[1] ≥ 0∧i34[1] + [-2] + [-1]i35[1] ≥ 0∧i35[1] ≥ 0∧i34[1] + [-1] + [-1]i35[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]i34[1] + [(-1)bni_19]i35[1] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i35[1] ≥ 0∧i34[1] + [-2] + [-1]i35[1] ≥ 0∧i35[1] ≥ 0∧i34[1] + [-1] + [-1]i35[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]i34[1] + [(-1)bni_19]i35[1] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i35[1] ≥ 0∧i34[1] + [-2] + [-1]i35[1] ≥ 0∧i35[1] ≥ 0∧i34[1] + [-1] + [-1]i35[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]i34[1] + [(-1)bni_19]i35[1] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (i35[1] ≥ 0∧i34[1] + [-2] + [-1]i35[1] ≥ 0∧i35[1] ≥ 0∧i34[1] + [-1] + [-1]i35[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]i34[1] + [(-1)bni_19]i35[1] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    (i35[1] ≥ 0∧i34[1] ≥ 0∧i35[1] ≥ 0∧[1] + i34[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥)∧0 = 0∧[bni_19 + (-1)Bound*bni_19] + [bni_19]i34[1] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)







For Pair COND_LOAD270ARR5(TRUE, i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → LOAD270(+(i35, 1), i34, java.lang.Object(ARRAY(i34, a21dataNew))) the following chains were created:
  • We consider the chain COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2]))) which results in the following constraint:

    (13)    (COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2])))≥NonInfC∧COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2])))≥LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))∧(UIncreasing(LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))), ≥))



    We simplified constraint (13) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (14)    ((UIncreasing(LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))), ≥)∧[1 + (-1)bso_22] ≥ 0)



    We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (15)    ((UIncreasing(LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))), ≥)∧[1 + (-1)bso_22] ≥ 0)



    We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (16)    ((UIncreasing(LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))), ≥)∧[1 + (-1)bso_22] ≥ 0)



    We simplified constraint (16) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (17)    ((UIncreasing(LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_22] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD270(i35, i34, java.lang.Object(ARRAY(i34, a21data))) → LOAD270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22)))
    • ((UIncreasing(LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)

  • LOAD270ARR5(i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → COND_LOAD270ARR5(&&(&&(&&(>=(i35, 0), <(i35, i34)), <(i35, -(i34, 1))), >(+(i35, 1), 0)), i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22)))
    • (i35[1] ≥ 0∧i34[1] ≥ 0∧i35[1] ≥ 0∧[1] + i34[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))), ≥)∧0 = 0∧[bni_19 + (-1)Bound*bni_19] + [bni_19]i34[1] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

  • COND_LOAD270ARR5(TRUE, i35, i34, java.lang.Object(ARRAY(i34, a21data)), java.lang.Object(java.lang.String(i52, i51, i53, a22))) → LOAD270(+(i35, 1), i34, java.lang.Object(ARRAY(i34, a21dataNew)))
    • ((UIncreasing(LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_22] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD270(x1, x2, x3)) = [-1] + x2 + [-1]x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = x1   
POL(LOAD270ARR5(x1, x2, x3, x4)) = [-1] + x2 + [-1]x1   
POL(java.lang.String(x1, x2, x3, x4)) = [-1]   
POL(COND_LOAD270ARR5(x1, x2, x3, x4, x5)) = [-1] + x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   
POL(>(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   

The following pairs are in P>:

COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(+(i35[2], 1), i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))

The following pairs are in Pbound:

LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))

The following pairs are in P:

LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))
LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(&&(&&(&&(>=(i35[1], 0), <(i35[1], i34[1])), <(i35[1], -(i34[1], 1))), >(+(i35[1], 1), 0)), i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))

There are no usable rules.

(65) Complex Obligation (AND)

(66) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))
(1): LOAD270ARR5(i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1]))) → COND_LOAD270ARR5(i35[1] >= 0 && i35[1] < i34[1] && i35[1] < i34[1] - 1 && i35[1] + 1 > 0, i35[1], i34[1], java.lang.Object(ARRAY(i34[1], a21data[1])), java.lang.Object(java.lang.String(i52[1], i51[1], i53[1], a22[1])))

(0) -> (1), if ((i34[0]* i34[1])∧((i52[0]* i52[1])∧(i51[0]* i51[1])∧(i53[0]* i53[1])∧(a22[0]* a22[1]))∧(i35[0]* i35[1])∧((i34[0]* i34[1])∧(a21data[0]* a21data[1])))



The set Q consists of the following terms:
Load270(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load270ARR5(x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))
Cond_Load270ARR5(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))

(67) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(68) TRUE

(69) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD270(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0]))) → LOAD270ARR5(i35[0], i34[0], java.lang.Object(ARRAY(i34[0], a21data[0])), java.lang.Object(java.lang.String(i52[0], i51[0], i53[0], a22[0])))
(2): COND_LOAD270ARR5(TRUE, i35[2], i34[2], java.lang.Object(ARRAY(i34[2], a21data[2])), java.lang.Object(java.lang.String(i52[2], i51[2], i53[2], a22[2]))) → LOAD270(i35[2] + 1, i34[2], java.lang.Object(ARRAY(i34[2], a21dataNew[2])))

(2) -> (0), if (((i34[2]* i34[0])∧(a21dataNew[2]* a21data[0]))∧(i35[2] + 1* i35[0])∧(i34[2]* i34[0]))



The set Q consists of the following terms:
Load270(x0, x1, java.lang.Object(ARRAY(x1, x2)))
Load270ARR5(x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))
Cond_Load270ARR5(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), java.lang.Object(java.lang.String(x3, x4, x5, x6)))

(70) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(71) TRUE